package www.boxeloff.com.archaisticsentensemaker;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.MultiAutoCompleteTextView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private TextView mTextMessage=null;
    private Button ShengCheng=null;
    private Button Clear=null;
    private MultiAutoCompleteTextView Mytxt=null;
    private Spinner ChooseStyle=null;

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override


        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    mTextMessage.setText("布可斯");
                    return true;
                case R.id.navigation_dashboard:
                    mTextMessage.setText("伊洛夫");
                    return true;
                case R.id.navigation_notifications:
                    mTextMessage.setText("超帅");
                    return true;
            }

            return false;
        }

    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.ShengCheng=(Button)super.findViewById(R.id.ShengCheng);
        this.Clear=(Button)super.findViewById(R.id.Clear);
        this.Mytxt=(MultiAutoCompleteTextView)super.findViewById(R.id.Mytxt);
        this.ChooseStyle=(Spinner)super.findViewById(R.id.ChooseStyle);
        this.mTextMessage=(TextView)super.findViewById(R.id.mTextMessage);
        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

        ShengCheng.setOnClickListener(new SCListener());
        Clear.setOnClickListener(new ClearListener());
    }

    private class SCListener implements View.OnClickListener{
        //双字名词
        ArrayList<String> TwoN=new ArrayList<String>(){{add("朱砂");add("天下");add("忧愁");add("人家");
            add("韶华");add("风华");add("繁华");add("夜雨");add("玉容");add("白衣");add("嫁衣");add("孤城");add("旧人");add("春风");
            add("古琴");add("无情");add("白石");add("奈何");add("长安");add("洛阳");add("未央");add("痴狂");add("三生");add("桃花");
            add("落花");add("烟花");add("离殇");add("情殇");add("剑殇");add("陌上");add("墨香");add("焚香");add("断肠");add("黄梁");
            add("残红");add("红颜");add("红衣");add("青冢");add("青丝");add("碧落");add("紫陌");add("柴扉");add("烟雨");add("千年");
            add("忘川");add("纸伞");add("匆忙");add("寒蝉");add("短篷");add("春潮");add("当归");add("白薇");add("青苍");add("雨辰");
            add("墨漓");add("云崖");add("桑麻");add("丰年");add("苍山");add("白屋");add("中谷");add("清秋");}};
        //双字动词
        ArrayList<String> TwoV=new ArrayList<String>(){{add("杀伐");add("墨染");add("血染");add("迷离");
            add("挑灯");add("沉醉");add("卧听");add("东流");add("醉卧");add("拱手");add("退没");add("独恋");add("独怜");add("叙白");
            add("俾睨");add("俯首");add("环顾");add("散入");}};
        //双字动词押U韵
        ArrayList<String> TwoVU=new ArrayList<String>(){{add("郁郁");add("之牧");add("还复");
            add("环顾");add("散入");}};
        //双字动词押I韵
        ArrayList<String> TwoVI=new ArrayList<String>(){{add("迷离");add("俾睨");add("疏离");
            add("沥沥");add("离离");add("绮丽");add("迤逦");}};
        //双字动词押I韵
        ArrayList<String> TwoVIan=new ArrayList<String>(){{add("独恋");add("独怜");add("绵绵");
            add("离间");}};
        //双字名词押A韵
        ArrayList<String> TwoNA=new ArrayList<String>(){{add("朱砂");add("天下");add("人家");
            add("桑麻");add("云崖");add("蒹葭");add("酒家");add("笼沙");add("千年");add("丰年");}};
        //双字名词押Ua韵
        ArrayList<String> TwoNUa=new ArrayList<String>(){{add("韶华");add("风华");add("繁华");
            add("桃花");add("落花");}};
        //双字名词押I韵
        ArrayList<String> TwoNI=new ArrayList<String>(){{add("白衣");add("嫁衣");add("红衣");
            add("青丝");add("墨漓");add("遗力");}};
        //双字名词押Ang韵
        ArrayList<String> TwoNAng=new ArrayList<String>(){{add("痴狂");add("未央");add("洛阳");
            add("离殇");add("情殇");add("剑殇");add("陌上"); add("墨香");add("断肠");add("焚香");add("黄梁");
            add("青苍");}};
        //双字名词押Eng韵
        ArrayList<String> TwoNEng=new ArrayList<String>(){{add("孤城");add("旧人");add("春风");
            add("三生");add("短篷");add("雨辰");}};
        //单字动词
        ArrayList<String> OneV=new ArrayList<String>(){{add("下");add("望");add("见");add("上");add("入");add("垂");add("斜");
            add("认");add("去");add("还");add("寻");add("落");add("系");add("解");add("闻");add("扣");add("暗");
            add("堆");add("聚");add("悦");add("吹");add("迎");add("送");add("思");add("牵");add("挂");add("游");
            add("流");add("旧");add("求");add("休");add("留");add("空");add("弄");add("溶");add("渡");add("睡");
            add("碎");add("夹");add("洽");add("葬");add("藏");add("傍");add("芳");add("降");add("淌");add("泄");}};
        //单字名词
        ArrayList<String> OneN=new ArrayList<String>(){{add("月");add("云");add("峰");add("水");add("日");add("松");add("山");
            add("楼");add("愁");add("酒");add("歌");add("琴");add("罄");add("舟");add("桃");add("擎");add("岸");
            add("影");add("湖");add("城");add("门");add("雨");add("蛙");add("丝");add("伊");add("蝶");add("眸");
            add("蔻");add("缶");add("窦");add("柳");add("貅");add("裘");add("泽");add("舍");add("林");add("皿");
            add("茅");add("草");add("枣");add("肴");add("铃");add("陵");add("茗");add("柠");add("镜");add("麋");}};
        //单字名词押I韵
        ArrayList<String> OneNI=new ArrayList<String>(){{add("日");add("丝");add("伊");add("麋");}};
        //单字名词押Ou韵
        ArrayList<String> OneNOu=new ArrayList<String>(){{add("楼");add("愁");add("舟");add("眸");add("蔻");add("缶");add("窦");}};
        //单字名词押Iu韵
        ArrayList<String> OneNIu=new ArrayList<String>(){{add("酒");add("柳");add("貅");add("裘");;}};
        //单字名词押Ing韵
        ArrayList<String> OneNIng=new ArrayList<String>(){{add("琴");add("罄");add("擎");add("影");
            add("林");add("皿");add("铃");add("陵");add("茗");add("柠");add("镜");}};
        //单字名词押IAo韵
        ArrayList<String> OneNAo=new ArrayList<String>(){{add("桃");add("茅");add("草");add("枣");add("肴");}};
        //单字名词押韵
        ArrayList<String> OneNYa=new ArrayList<String>();
        //单字动词押An韵
        ArrayList<String> OneVAn=new ArrayList<String>(){{add("见");add("暗");add("牵");add("念");
            add("恋");add("辨");add("眠");add("言");add("添");add("牵");}};
        //单字动词押Ang韵
        ArrayList<String> OneVAng=new ArrayList<String>(){{add("望");add("上");add("葬");add("藏");
            add("傍");add("芳");add("降");add("淌");add("让");add("向");add("忙");add("纺");add("赏");}};
        //单字动词押Ui韵
        ArrayList<String> OneVUi=new ArrayList<String>(){{add("垂");add("堆");add("吹");add("睡");
            add("碎");add("醉");add("催");add("会");add("汇");add("贵");add("褪");}};
        //单字动词押Iu韵
        ArrayList<String> OneVIu=new ArrayList<String>(){{add("流");add("旧");add("求");add("休");
            add("留");add("丢");add("泅");}};
        //单字动词押Ong韵
        ArrayList<String> OneVOng=new ArrayList<String>(){{add("送");add("空");add("弄");add("溶");
            add("种");add("重");add("拢");add("");add("冻");add("耸");add("咏");add("穷");}};
        //单字动词押韵
        ArrayList<String> OneVYa=new ArrayList<String>();
        //四字词
        ArrayList<String> Four=new ArrayList<String>(){{add("情深缘浅");add("情深不寿");add("莫失莫忘");add("阴阳相隔");
            add("如花美眷");add("似水流年");add("眉目如画");add("曲终人散");add("繁华落尽");add("不诉离殇");add("一世长安");add("银烛秋光");add("轻罗筱扇");add("泉眼无声");
            add("半世烟尘");add("落梅似雪");add("冷月花魂");add("伊人已逝");add("如花美眷");add("落晚芳菲");add("沧山映水");add("独坐如莲");add("红颜有梦");add("陌上花开");
            add("弦断花落");add("物是人非");add("昔云楚楚");add("雪殇若兮");add("燕笑语兮");add("笑若扶风");add("雨夜聆风");add("月舞神殇");add("飞泉鸣玉");add("古道西风");
            add("往事如烟");add("笑靥如花");add("浮生若梦");add("豆寇年华");add("曲终人散");add("柒指流年");add("笙歌婉转");add("斟杯天涯");add("静水深流");add("闲梦江南");
            add("青砖作尘");add("一川风花");add("墨香温存");add("半世浮华");add("盛世光年");add("不诉离殇");}};

        public void onClick(View v){
            String choose;
            choose=(String)ChooseStyle.getSelectedItem();
            if(choose.equals("xx，xx，xx了xx。")){
                Mytxt.setText(M2222());
            }else if(choose.equals("xxxx，xxxx，不过是一场xxxx。")){
                Mytxt.setText((M444()));
            }else if(choose.equals("xx，xx，许我一场xxxx。")){
                Mytxt.setText(M224());
            }else if(choose.equals("xxxxxxx,xxxxxxx。")){
                Mytxt.setText(M77());
            }
        }
        /**
         * 函 数 名 :M2222
         * 功能描述：随机生成"xx，xx，xx了xx。"句式句子
         * 返 回 值:  - String <生成的句子>
         * 创 建 人: BoxEloff
         * 日    期:17.10.12
         */
        public String M2222(){
            String s;

            return s=TwoN.get((int)(Math.random()*TwoN.size()))+","
                    +TwoN.get((int)(Math.random()*TwoN.size()))+","
                    +TwoV.get((int)(Math.random()*TwoV.size()))+"了"
                    +TwoN.get((int)(Math.random()*TwoN.size()))+"。";
        }
        /**
         * 函 数 名 :M444
         * 功能描述：随机生成"xxxx，xxxx，不过是一场xxxx。"句式句子
         * 返 回 值:  - String <生成的句子>
         * 创 建 人: BoxEloff
         * 日    期:17.10.12
         */
        public String M444(){
            String s;

            return s=Four.get((int)(Math.random()*Four.size()))+","
                    +Four.get((int)(Math.random()*Four.size()))+","
                    +"不过是一场"+Four.get((int)(Math.random()*Four.size()))+"。";
        }
        /**
         * 函 数 名 :M224
         * 功能描述：随机生成"xx，xx，许我一场xxxx。"句式句子
         * 返 回 值:  - String <生成的句子>
         * 创 建 人: BoxEloff
         * 日    期:17.10.12
         */
        public String M224(){
            String s;

            return s=TwoN.get((int)(Math.random()*TwoN.size()))+","
                    +TwoN.get((int)(Math.random()*TwoN.size()))+","
                    +"许我一场"+Four.get((int)(Math.random()*Four.size()))+"。";
        }
        /**
         * 函 数 名 :M77
         * 功能描述：随机生成"xxxxxxx,xxxxxxx。"句式句子
         * 返 回 值:  - String <生成的句子>
         * 创 建 人: BoxEloff
         * 日    期:17.10.12
         */
        public String M77(){
            String s=null;

            OneNYaDone();
            OneVYaDone();

            int i=(int)(Math.random()*7);
            if(i==0){
                s=TwoN.get((int)(Math.random()*TwoN.size()))
                +TwoN.get((int)(Math.random()*TwoN.size()))
                +OneV.get((int)(Math.random()*OneV.size()))
                +TwoNEng.get((int)(Math.random()*TwoNEng.size()))
                +","
                +TwoN.get((int)(Math.random()*TwoN.size()))
                +TwoN.get((int)(Math.random()*TwoN.size()))
                +OneV.get((int)(Math.random()*OneV.size()))
                +TwoNEng.get((int)(Math.random()*TwoNEng.size()))
                +"。";
            }else if(i==1){
                 s=TwoV.get((int)(Math.random()*TwoV.size()))
                 +TwoN.get((int)(Math.random()*TwoN.size()))
                 +TwoN.get((int)(Math.random()*TwoN.size()))
                 +OneVYa.get((int)(Math.random()*OneVYa.size()))
                 +","
                 +TwoV.get((int)(Math.random()*TwoV.size()))
                 +TwoN.get((int)(Math.random()*TwoN.size()))
                 +TwoN.get((int)(Math.random()*TwoN.size()))
                 +OneVYa.get((int)(Math.random()*OneVYa.size()))
                 +"。";
            }else if(i==2){
                s=TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +OneV.get((int)(Math.random()*OneV.size()))
                        +TwoNA.get((int)(Math.random()*TwoNA.size()))
                        +","
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +OneV.get((int)(Math.random()*OneV.size()))
                        +TwoNA.get((int)(Math.random()*TwoNA.size()))
                        +"。";
            }else if(i==3){
                s=TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +OneV.get((int)(Math.random()*OneV.size()))
                        +TwoNI.get((int)(Math.random()*TwoNI.size()))
                        +","
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +OneV.get((int)(Math.random()*OneV.size()))
                        +TwoNI.get((int)(Math.random()*TwoNI.size()))
                        +"。";
            }else if(i==4){
                s=TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +OneV.get((int)(Math.random()*OneV.size()))
                        +TwoNUa.get((int)(Math.random()*TwoNUa.size()))
                        +","
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +OneV.get((int)(Math.random()*OneV.size()))
                        +TwoNUa.get((int)(Math.random()*TwoNUa.size()))
                        +"。";
            }else if(i==5){
                s=TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +OneV.get((int)(Math.random()*OneV.size()))
                        +TwoNAng.get((int)(Math.random()*TwoNAng.size()))
                        +","
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +OneV.get((int)(Math.random()*OneV.size()))
                        +TwoNAng.get((int)(Math.random()*TwoNAng.size()))
                        +"。";
            }else if(i==6){
                s=TwoV.get((int)(Math.random()*TwoV.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoV.get((int)(Math.random()*TwoV.size()))
                        +OneNYa.get((int)(Math.random()*OneNYa.size()))
                        +","
                        +TwoV.get((int)(Math.random()*TwoV.size()))
                        +TwoN.get((int)(Math.random()*TwoN.size()))
                        +TwoV.get((int)(Math.random()*TwoV.size()))
                        +OneNYa.get((int)(Math.random()*OneNYa.size()))
                        +"。";
            }
            OneNYa.clear();//回收
            OneVYa.clear();//回收
            return s;
        }
        /**
         * 函 数 名 :OneNYaDone
         * 功能描述：用于随机决定单字名词结尾时的押韵韵脚
         * 返 回 值:  void
         * 创 建 人: BoxEloff
         * 日    期:17.10.12
         */
        public void OneNYaDone(){
            int o=(int)(Math.random()*5);
            if(o==0){
                OneNYa.addAll(OneNI);
            }else if(o==1){
                OneNYa.addAll(OneNOu);
            } else if(o==2){
                OneNYa.addAll(OneNIu);
            }else if(o==3){
                OneNYa.addAll(OneNIng);
            }else if(o==4){
                OneNYa.addAll(OneNAo);
            }
        }
        /**
         * 函 数 名 :OneVYaDone
         * 功能描述：用于随机决定单字动词结尾时的押韵韵脚
         * 返 回 值:  void
         * 创 建 人: BoxEloff
         * 日    期:17.10.12
         */
        public void OneVYaDone(){
            int o=(int)(Math.random()*5);
            if(o==0){
                OneVYa.addAll(OneVAn);
            }else if(o==1){
                OneVYa.addAll(OneVAng);
            } else if(o==2){
                OneVYa.addAll(OneVIu);
            }else if(o==3){
                OneVYa.addAll(OneVOng);
            }else if(o==4){
                OneVYa.addAll(OneVUi);
            }
        }
    }
    private class ClearListener implements View.OnClickListener{
        public void onClick(View v){
            Mytxt.setText("");
        }//点击清空Mytxt
    }
}
